/*
 * DatabaseSerializable.java
 * 
 * @version 1.0, April 2, 2011
 * CS 2340 Team 10: Cyberdyne Systems
 */
package edu.gatech.oad.cyberdoc.database;

import edu.gatech.oad.cyberdoc.domain.JSONSerializable;

/**
 * Specifies the methods required for a class to be saved to the database.
 * 
 * It is also required that classes implementing this interface also have a
 * constructor which takes in a single JSONObject. This object is guaranteed to
 * be of the same format as the one returned by that class's
 * JSONSerializable.toJSONObject(). If a class does not have this constructor it
 * can still be saved to the database, but it cannot be loaded.
 * 
 * @author John Girata
 * @version 1.0, April 2, 2011
 */
public interface DatabaseSerializable extends JSONSerializable {

	/**
	 * Returns a string that is unique to an instance of a class.
	 * 
	 * @return A unique identifier for this instance
	 */
	String getUniqueIdentifier();
}
